package arithmetic;

import java.util.Scanner;

/**
 * 知识点：
 * 1.Math.ceil() 向上取整
 * 2.Math.floor() 向下取整
 * 描述
 * 写出一个程序，接受一个正浮点数值，输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整；小于 0.5 ，则向下取整。
 *
 * 数据范围：保证输入的数字在 32 位浮点数范围内
 * 输入描述：
 * 输入一个正浮点数值
 *
 * 输出描述：
 * 输出该数值的近似整数值
 *
 * 示例1
 * 输入：
 * 5.5
 * 复制
 * 输出：
 * 6
 * 复制
 * 说明：
 * 0.5>=0.5，所以5.5需要向上取整为6
 */
public class TestHW7 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        try{
            float f1 = in.nextFloat();
            float d1 =(float) Math.ceil(f1);
            //小数点后数值大于等于0.5
            //如果小数点后面的位数太多，会存在精度问题，可采用BigDecimal
            boolean b1 = (d1-f1)>0.5;
            if(b1){
                System.out.println((long)Math.floor(f1));
            }else{
                System.out.print((long)Math.ceil(f1));
            }
        }catch(Exception e){
            System.out.println("请输入32位正浮点数值");
        }
    }
}
